Virtual Desktop Infrastructure (VDI) refers to a system of providing complete centrally-managed desktops to users using computer virtualization technology. VDI is used to create a large number of independent computing environments for a large number of users. In VDI, each desktop is exported to the user from a virtual machine (VM) that is assigned to the user. The user interacts with the desktop using a remote terminal, which may have its own resources such as compute resources, memory, network, and storage. The remote terminal may include a Universal Serial Bus (USB) host for USB storage devices connected by the user. The USB host the device is connected to is therefore separated from the USB device driver within the VM by a virtualization layer and a remoting layer. The additional latency introduced between the USB device and the USB device driver results in lower performance due to the synchronous nature of USB data transfers. This issue is especially severe for USB storage devices because each operation consists of multiple requests, which are submitted serially by the USB device driver.
As each request requires a round-trip between the USB device and the USB device driver before the next request is submitted, the total latency may be three times the round-trip latency of the data pathway. When a connection over a high-latency network, such as the Internet, is involved, a latency of 100 ms is multiplied to at least 300 ms for each operation. The throughput to and from the USB device is therefore reduced substantially. Accordingly, the throughput to and from the USB device is therefore reduced substantially, impacting user experience.